package com.ruoyi.app.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

/**
 * 活动与用户的关联关系（无物理外键，通过业务逻辑维护关联）对象 app_medium_activity_user
 * 
 * @author ruoyi
 * @date 2025-11-04
 */
public class AppMediumActivityUser extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 自增主键ID */
    @Excel(name = "自增主键ID")
    private Long activityUserId;

    /** 活动ID（业务关联activities表id） */
    @Excel(name = "活动ID", readConverterExp = "业=务关联activities表id")
    private Long activityId;

    /** 用户ID（业务关联用户表id） */
    @Excel(name = "用户ID", readConverterExp = "业=务关联用户表id")
    private Long userId;

    /** 状态ID：1=仅参与，2=仅收藏，3=既参与且收藏 */
    @Excel(name = "状态ID：1=仅参与，2=仅收藏，3=既参与且收藏")
    private Long statusId;

    /** 参与时间（当status_id=1或3时必填） */
    @Excel(name = "参与时间", readConverterExp = "当=status_id=1或3时必填")
    private Date joinTime;

    /** 收藏时间（当status_id=2或3时必填） */
    @Excel(name = "收藏时间", readConverterExp = "当=status_id=2或3时必填")
    private Date collectTime;

    public void setActivityUserId(Long activityUserId) 
    {
        this.activityUserId = activityUserId;
    }

    public Long getActivityUserId() 
    {
        return activityUserId;
    }

    public void setActivityId(Long activityId) 
    {
        this.activityId = activityId;
    }

    public Long getActivityId() 
    {
        return activityId;
    }

    public void setUserId(Long userId) 
    {
        this.userId = userId;
    }

    public Long getUserId() 
    {
        return userId;
    }

    public void setStatusId(Long statusId) 
    {
        this.statusId = statusId;
    }

    public Long getStatusId() 
    {
        return statusId;
    }

    public void setJoinTime(Date joinTime) 
    {
        this.joinTime = joinTime;
    }

    public Date getJoinTime() 
    {
        return joinTime;
    }

    public void setCollectTime(Date collectTime) 
    {
        this.collectTime = collectTime;
    }

    public Date getCollectTime() 
    {
        return collectTime;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("activityUserId", getActivityUserId())
            .append("activityId", getActivityId())
            .append("userId", getUserId())
            .append("statusId", getStatusId())
            .append("joinTime", getJoinTime())
            .append("collectTime", getCollectTime())
            .toString();
    }
}
